home *** CD-ROM | disk | FTP | other *** search
/ Cream of the Crop 11 / Cream of the Crop 11-1.iso / math / ast51src.zip / DATA2.C < prev    next >
C/C++ Source or Header  |  1995-12-31  |  17KB  |  345 lines

  1. /*
  2. ** Astrolog (Version 5.10) File: data2.c
  3. **
  4. ** IMPORTANT NOTICE: The graphics database and chart display routines
  5. ** used in this program are Copyright (C) 1991-1995 by Walter D. Pullen
  6. ** (Astara@msn.com). Permission is granted to freely use and
  7. ** distribute these routines provided one doesn't sell, restrict, or
  8. ** profit from them in any way. Modification is allowed provided these
  9. ** notices remain with any altered or edited versions of the program.
  10. **
  11. ** The main planetary calculation routines used in this program have
  12. ** been Copyrighted and the core of this program is basically a
  13. ** conversion to C of the routines created by James Neely as listed in
  14. ** Michael Erlewine's 'Manual of Computer Programming for Astrologers',
  15. ** available from Matrix Software. The copyright gives us permission to
  16. ** use the routines for personal use but not to sell them or profit from
  17. ** them in any way.
  18. **
  19. ** The PostScript code within the core graphics routines are programmed
  20. ** and Copyright (C) 1992-1993 by Brian D. Willoughby
  21. ** (brianw@sounds.wa.com). Conditions are identical to those above.
  22. **
  23. ** The extended accurate ephemeris databases and formulas are from the
  24. ** calculation routines in the program "Placalc" and are programmed and
  25. ** Copyright (C) 1989,1991,1993 by Astrodienst AG and Alois Treindl
  26. ** (alois@azur.ch). The use of that source code is subject to
  27. ** regulations made by Astrodienst Zurich, and the code is not in the
  28. ** public domain. This copyright notice must not be changed or removed
  29. ** by any user of this program.
  30. **
  31. ** Initial programming 8/28,30, 9/10,13,16,20,23, 10/3,6,7, 11/7,10,21/1991.
  32. ** X Window graphics initially programmed 10/23-29/1991.
  33. ** PostScript graphics initially programmed 11/29-30/1992.
  34. ** Last code change made 12/27/1995.
  35. */
  36.  
  37. #include "astrolog.h"
  38.  
  39.  
  40. /*
  41. ******************************************************************************
  42. ** Constellation Tables.
  43. ******************************************************************************
  44. */
  45.  
  46. #ifdef CONSTEL
  47. CONST char * ARR szCnstlName[cCnstl+1] = {"",
  48.   "Andromeda", "Antilia", "Apus", "Aquarius",
  49.   "Aquila", "Ara", "Aries", "Auriga",
  50.   "Bootes", "Caelum", "Camelopardalis", "Cancer",
  51.   "Canes Venatici", "Canis Major", "Canis Minor", "Capricornus",
  52.   "Carina", "Cassiopeia", "Centaurus", "Cepheus",
  53.   "Cetus", "Chamaeleon", "Circinus", "Columba",
  54.   "Coma Berenices", "Corona Australis", "Corona Borealis", "Corvus",
  55.   "Crater", "Crux", "Cygnus", "Delphinus",
  56.   "Dorado", "Draco", "Equuleus", "Eridanus",
  57.   "Fornax", "Gemini", "Grus", "Hercules",
  58.   "Horologium", "Hydra", "Hydrus", "Indus",
  59.   "Lacerta", "Leo", "Leo Minor", "Lepus",
  60.   "Libra", "Lupus", "Lynx", "Lyra",
  61.   "Mensa", "Microscopium", "Monoceros", "Musca",
  62.   "Norma", "Octans", "Ophiuchus", "Orion",
  63.   "Pavo", "Pegasus", "Perseus", "Phoenix",
  64.   "Pictor", "Pisces", "Piscis Austrinus", "Puppis",
  65.   "Pyxis", "Reticulum", "Sagitta", "Sagittarius",
  66.   "Scorpius", "Sculptor", "Scutum", "Serpens Caput/Cauda",
  67.   "Sextans", "Taurus", "Telescopium", "Triangulum",
  68.   "Triangulum Australe", "Tucana", "Ursa Major", "Ursa Minor",
  69.   "Vela", "Virgo", "Volans", "Vulpecula"};
  70.  
  71. CONST char * ARR szCnstlAbbrev[cCnstl+1] = {"",
  72.   "And", "Ant", "Aps", "Aqu", "Aql", "Ara", "Ari", "Aur",
  73.   "Boo", "Cae", "Cam", "Cnc", "CVn", "CMa", "CMi", "Cap",
  74.   "Car", "Cas", "Cen", "Cep", "Cet", "Cha", "Cir", "Col",
  75.   "Com", "CrA", "CrB", "Crv", "Crt", "Cru", "Cyg", "Del",
  76.   "Dor", "Dra", "Equ", "Eri", "For", "Gem", "Gru", "Her",
  77.   "Hor", "Hya", "Hyi", "Ind", "Lac", "Leo", "LMi", "Lep",
  78.   "Lib", "Lup", "Lyn", "Lyr", "Men", "Mic", "Mon", "Mus",
  79.   "Nor", "Oct", "Oph", "Ori", "Pav", "Peg", "Per", "Phe",
  80.   "Pic", "Psc", "PsA", "Pup", "Pyx", "Ret", "Sge", "Sgr",
  81.   "Sco", "Scl", "Sct", "Ser", "Sex", "Tau", "Tel", "Tri",
  82.   "TrA", "Tuc", "UMa", "UMi", "Vel", "Vir", "Vol", "Vul"};
  83.  
  84. CONST char * ARR szCnstlMeaning[cCnstl+1] = {"",
  85.   "Chained Maiden", "Air Pump", "Bird of Paradise", "Water Bearer",
  86.   "Eagle", "Altar", "Ram", "Charioteer",
  87.   "Herdsman", "Chisel", "Giraffe", "Crab",
  88.   "Hunting Dogs", "Great Dog", "Little Dog", "Sea Goat",
  89.   "Keel", "Queen", "Centaur", "King",
  90.   "Sea Monster", "Chameleon", "Drawing Compass", "Dove",
  91.   " Berenice's Hair", "Southern Crown", "Northern Crown", "Crow",
  92.   "Cup", "Southern Cross", "Swan", "Dolphin",
  93.   "Dolphinfish", "Dragon", "Little Horse", "River",
  94.   "Furnace", "Twins", "Crane", "Strongman",
  95.   "Clock", "Sea Serpent", "Water Snake", "Indian",
  96.   "Lizard", "Lion", "Little Lion", "Hare",
  97.   "Scales", "Wolf", "Lynx", "Lyre",
  98.   "Table Mountain", "Microscope", "Unicorn", "Fly",
  99.   "Level", "Octant", "Serpent Bearer", "Hunter",
  100.   "Peacock", "Winged Horse", "Hero", "Phoenix",
  101.   "Painter", "Fishes", "Southern Fish", "Stern",
  102.   "Compass", "Net", "Arrow", "Archer",
  103.   "Scorpion", "Sculptor", "Shield", " Head/Tail of the Snake",
  104.   "Sextant", "Bull", "Telescope", "Triangle",
  105.   "Southern Triangle", "Toucan", "Great Bear", "Little Bear",
  106.   "Sail", "Virgin", "Flying Fish", "Fox"};
  107.  
  108. CONST char * ARR szCnstlGenitive[cCnstl+1] = {"",
  109.   "", "", "2odis", "", "", "", "1tis", "",
  110.   "2is", "", "", "2ri", "2um1orum", " is", " is", "",
  111.   "", "", "", "", "", "tis", "", "",
  112.   "", "", "", "", "is", "", "", "",
  113.   "1us", "nis", "", "", "", "1orum", "1is", "2is",
  114.   "", "", "", "", "", "nis", "nis0is", "2oris",
  115.   "", "", "", "", "", "", "1tis", "",
  116.   "", "1is", "", "is", "nis", "", "", "",
  117.   "is", "2ium", "", "", "1dis", "", "", "",
  118.   "", "is", "", "!1is", "1tis", "", "", "",
  119.   "2i1is", "", " is", " is", "1orum", "1inis", "1tis", ""};
  120. #endif /* CONSTEL */
  121.  
  122.  
  123. /*
  124. ******************************************************************************
  125. ** Object Calculation Tables.
  126. ******************************************************************************
  127. */
  128.  
  129. #ifdef MATRIX
  130. CONST byte rErrorCount[oPlu-oJup+1] = {11, 5, 4, 4, 4};
  131. CONST byte rErrorOffset[oPlu-oJup+1] = {0, 72, 72+51, 72+51+42, 72+51+42+42};
  132.  
  133. CONST real ARR rErrorData[72+51+42*3] = {
  134. -.001,-.0005,.0045,.0051,581.7,-9.7,-.0005,2510.7,-12.5,-.0026,1313.7,-61.4,
  135. 0.0013,2370.79,-24.6,-.0013,3599.3,37.7,-.001,2574.7,31.4,-.00096,6708.2,
  136. -114.5,-.0006,5499.4,-74.97,-.0013,1419,54.2,.0006,6339.3,-109,.0007,4824.5,
  137. -50.9,.0020,-.0134,.0127,-.0023,676.2,.9,.00045,2361.4,174.9,.0015,1427.5,
  138. -188.8,.0006,2110.1,153.6,.0014,3606.8,-57.7,-.0017,2540.2,121.7,-.00099,
  139. 6704.8,-22.3,-.0006,5480.2,24.5,.00096,1651.3,-118.3,.0006,6310.8,-4.8,.0007,
  140. 4826.6,36.2, /* Jupiter error */
  141.  
  142. -.0009,.0037,0,.0134,1238.9,-16.4,-.00426,3040.9,-25.2,.0064,1835.3,36.1,
  143. -.0153,610.8,-44.2,-.0015,2480.5,-69.4,-.0014,.0026,0,.0111,1242.2,78.3,
  144. -.0045,3034.96,62.8,-.0066,1829.2,-51.5,-.0078,640.6,24.2,-.0016,2363.4,
  145. -141.4,.0006,-.0002,0,-.0005,1251.1,43.7,.0005,622.8,13.7,.0003,1824.7,-71.1,
  146. .0001,2997.1,78.2, /* Saturn error */
  147.  
  148. -.0021,-.0159,0,.0299,422.3,-17.7,-.0049,3035.1,-31.3,-.0038,945.3,60.1,
  149. -.0023,1227,-4.99,.0134,-.02186,0,.0317,404.3,81.9,-.00495,3037.9,57.3,.004,
  150. 993.5,-54.4,-.0018,1249.4,79.2,-.0003,.0005,0,.0005,352.5,-54.99,.0001,3027.5,
  151. 54.2,-.0001,1150.3,-88, /* Uranus error */
  152.  
  153. 0.1832,-.6718,.2726,-.1923,175.7,31.8,.0122,542.1,189.6,.0027,1219.4,178.1,
  154. -.00496,3035.6,-31.3,-.1122,.166,-.0544,-.00496,3035.3,58.7,.0961,177.1,-68.8,
  155. -.0073,630.9,51,-.0025,1236.6,78,.00196,-.0119,.0111,.0001,3049.3,44.2,-.0002,
  156. 893.9,48.5,.00007,1416.5,-25.2, /* Neptune error */
  157.  
  158. -.0426,.073,-.029,.0371,372,-331.3,-.0049,3049.6,-39.2,-.0108,566.2,318.3,
  159. 0.0003,1746.5,-238.3,-.0603,.5002,-.6126,.049,273.97,89.97,-.0049,3030.6,61.3,
  160. 0.0027,1075.3,-28.1,-.0007,1402.3,20.3,.0145,-.0928,.1195,.0117,302.6,-77.3,
  161. 0.00198,528.1,48.6,-.0002,1000.4,-46.1 /* Pluto error */
  162. };
  163.  
  164. OE ARR rgoe[oVes-1+cUran] = {
  165. {358.4758,35999.0498,-.0002,.01675,-.4E-4,0,1,101.2208,1.7192,.00045,0,0,0,0,
  166. 0,0}, /* Earth/Sun */
  167. {102.2794,149472.515,0,.205614,.2E-4,0,.3871,28.7538,.3703,.0001,47.1459,
  168. 1.1852,0.0002,7.009,.00186,0}, /* Mercury */
  169. {212.6032,58517.8039,.0013,.00682,-.5E-4,0,.7233,54.3842,.5082,-.14E-2,
  170. 75.7796,0.8999,.4E-3,3.3936,.1E-2,0}, /* Venus */
  171. {319.5294,19139.8585,.2E-3,.09331,.9E-4,0,1.5237,285.4318,1.0698,.1E-3,
  172. 48.7864,0.77099,0,1.8503,-.7E-3,0}, /* Mars */
  173.  
  174. {225.4928,3033.6879,0,.04838,-.2E-4,0,5.2029,273.393,1.3383,0,99.4198,1.0583,
  175. 0,1.3097,-.52E-2,0}, /* Jupiter */
  176. {174.2153,1223.50796,0,.05423,-.2E-3,0,9.5525,338.9117,-.3167,0,112.8261,
  177. .8259,0,2.4908,-.0047,0}, /* Saturn */
  178. {74.1757,427.2742,0,.04682,.00042,0,19.2215,95.6863,2.0508,0,73.5222,.5242,0,
  179. 0.7726,.1E-3,0}, /* Uranus */
  180. {30.13294,240.45516,0,.00913,-.00127,0,30.11375,284.1683,-21.6329,0,130.68415,
  181. 1.1005,0,1.7794,-.0098,0}, /* Neptune */
  182. {229.781,145.1781,0,.24797,.002898,0,39.539,113.5366,.2086,0,108.944,1.3739,0,
  183. 17.1514,-.0161,0}, /* Pluto */
  184.  
  185. {34.6127752,713.5756219,0,.382270369,-.004694073,0,13.66975144,337.407213,
  186. 2.163306646,0,208.1482658,1.247724355,0,6.911179715,.011236955,0}, /* Chiron */
  187. {108.2925,7820.36556,0,.0794314,0,0,2.7672273,71.0794444,0,0,80.23555556,
  188. 1.3960111,0,10.59694444,0,0}, /* Ceres */
  189. {106.6641667,7806.531667,0,.2347096,0,0,2.7704955,310.166111,0,0,172.497222,
  190. 1.39601111,0,34.81416667,0,0}, /* Pallas Athena */
  191. {267.685,8256.081111,0,.2562318,0,0,2.6689897,245.3752778,0,0,170.137777,
  192. 1.396011111,.0003083333,13.01694444,0,0}, /* Juno */
  193. {138.7733333,9924.931111,0,.0902807,0,0,2.360723,149.6386111,0,0,103.2197222,
  194. 1.396011111,.000308333,7.139444444,0,0}, /* Vesta */
  195.  
  196. {104.5959,138.5369,0,0,0,0,40.99837, 0,0,0,0,0,0,0,0,0}, /* Cupido   */
  197. {337.4517,101.2176,0,0,0,0,50.667443,0,0,0,0,0,0,0,0,0}, /* Hades    */
  198. {104.0904,80.4057, 0,0,0,0,59.214362,0,0,0,0,0,0,0,0,0}, /* Zeus     */
  199. {17.7346, 70.3863, 0,0,0,0,64.816896,0,0,0,0,0,0,0,0,0}, /* Kronos   */
  200. {138.0354,62.5,    0,0,0,0,70.361652,0,0,0,0,0,0,0,0,0}, /* Apollon  */
  201. {-8.678,  58.3468, 0,0,0,0,73.736476,0,0,0,0,0,0,0,0,0}, /* Admetos  */
  202. {55.9826, 54.2986, 0,0,0,0,77.445895,0,0,0,0,0,0,0,0,0}, /* Vulkanus */
  203. {165.3595,48.6486, 0,0,0,0,83.493733,0,0,0,0,0,0,0,0,0}  /* Poseidon */
  204. };
  205. #endif /* MATRIX */
  206.  
  207. CONST real ARR rStarBright[cStar+1] = {0,
  208.   0.46, 2.02, 5.24, 5.09, 0.85, 0.08, 0.12, 1.64, 1.65, 1.70,
  209.   0.50, 1.90, 1.98,-0.72, 1.93,-1.46, 1.50, 1.84, 1.59, 0.38,
  210.   1.14, 1.78, 1.86, 1.68, 1.98, 1.35, 1.79, 1.58, 1.63, 1.25,
  211.   1.77, 0.98, 1.86, 0.61,-0.04,-0.01, 0.96, 1.63, 1.87, 1.85,
  212.   0.03, 0.77, 1.94, 1.25, 1.74, 1.16, 4.61};
  213.  
  214. CONST real ARR rStarData[cStar*6] = {
  215.  1,37,42.9,-57,14,12,   2,31,50.5, 89,15,51,   3,17,46.1,-62,34,32,
  216.  3,49,11.1, 24, 8,12,   4,35,55.2, 16,30,33,   5,16,41.3, 45,59,53,
  217.  5,14,32.2, -8,12, 6,   5,25, 7.8,  6,20,59,   5,26,17.5, 28,36,27,
  218.  5,36,12.7, -1,12, 7,   5,55,10.3,  7,24,25,   5,59,31.7, 44,56,51,
  219.  6,22,41.9,-17,57,22,   6,23,57.2,-52,41,44,   6,37,42.7, 16,23,57,
  220.  6,45, 8.9,-16,42,58,   6,58,37.5,-28,58,20,   7, 8,23.4,-26,23,35,
  221.  7,34,35.9, 31,53,18,   7,39,18.1,  5,13,30,   7,45,18.9, 28, 1,34,
  222.  8, 9,31.9,-47,20,12,   8,22,30.8,-59,30,34,   9,13,12.1,-69,43, 2,
  223.  9,27,35.2, -8,39,31,  10, 8,22.3, 11,58, 2,  11, 3,43.6, 61,45, 3,
  224. 12,26,35.9,-63, 5,56,  12,31, 9.9,-57, 6,47,  12,47,43.3,-59,41,19,
  225. 12,54, 1.7, 55,57,35,  13,25,11.5,-11, 9,41,  13,47,32.3, 49,18,48,
  226. 14, 3,49.4,-60,22,22,  14,15,39.6, 19,10,57,  14,39,36.2,-60,50, 7,
  227. 16,29,24.4,-26,25,55,  17,33,36.4,-37, 6,13,  17,37,19.0,-42,59,52,
  228. 18,24,10.3,-34,23, 5,  18,36,56.2, 38,47, 1,  19,50,46.9,  8,52, 6,
  229. 20,25,38.8,-56,44, 7,  20,41,25.8, 45,16,49,  22, 8,13.9,-46,57,40,
  230. 22,57,39.0,-29,37,20,   0,42, 7.0, 41,16, 0};
  231.  
  232.  
  233. #ifdef INTERPRET
  234. /*
  235. ******************************************************************************
  236. ** Interpretation Tables.
  237. ******************************************************************************
  238. */
  239.  
  240. char * ARR szMindPart[oNorm+1] = {"",
  241.   "spirit, ego, image of self, and sense of aliveness",
  242.   "emotional nature, moods, feelings, and caring tendencies",
  243.   "thoughts, intellect, and communicative activity",
  244.   "creativity, tendencies for affection and calmness, and relationship needs",
  245.   "will, energy, activity, and aggressive, assertive tendencies",
  246.   "enthusiastic, faithful, wise, expansive, spontaneous nature",
  247.   "part of mind that is disciplined, respectful, and solitary",
  248.   "individuality, desires for change, and tendency to go against social norms",
  249.   "intuitive, spiritual, compassionate, psychic nature",
  250.   "destiny, and capacity to transform the self and the outer world",
  251.   "ability to help, heal, and teach others, and where one has much experience",
  252.   "tendency to direct energy to instinctive, creative, reproductive goals",
  253.   "tendency to direct energy away from emotional and into mental pursuits",
  254.   "tendency to give away individual power for the benefit of a relationship",
  255.   "capacity to direct creative energy into personal or devotional goals",
  256.   "karmic goals, and best direction of evolutionary growth",
  257.   "capacity to let go and accept their natural darker side",
  258.   "place where opportunity and success can be found",
  259.   "karmic fate and method of reception of energies",
  260.   "generalized projected personality and outward appearance",
  261.   "personality and outward appearance, as projected to the world",
  262.   "", "", "", "", "", "", "", "",
  263.   "view as seen in the eyes of others, reputation, and social standing",
  264.   "", "",
  265.   "group associations and matters relating to art",
  266.   "dark, secretive, past, shameful side",
  267.   "fiery, creative, leadership tendencies",
  268.   "lofty, extraordinary parts",
  269.   "progressive, abundant energies",
  270.   "intense, focused nature",
  271.   "greatly forceful energies",
  272.   "idealistic, honorable side"};
  273.  
  274. char * ARR szDesc[cSign+1] = {"",
  275.   "forceful, energetic, direct, courageous",
  276.   "practical, often skeptical and stubborn",
  277.   "inquisitive, witty, perceptive, adaptable",
  278.   "introspective, emotional, protective",
  279.   "proud, gregarious, dramatic, dignified",
  280.   "analytical, critical, modest, helpful",
  281.   "affectionate, tolerant, often indecisive, appreciates beauty",
  282.   "penetrating, suspicious, introspective",
  283.   "jovial, open minded, loves freedom",
  284.   "industrious, practical, disciplined",
  285.   "progressive, erratic, revolutionary, idealistic, humanitarian, inventive",
  286.   "imaginative, other worldly, impressionable"};
  287.  
  288. char * ARR szDesire[cSign+1] = {"",
  289.   "seeks adventure and challenge",
  290.   "loves serenity and inner peace",
  291.   "seeks out information",
  292.   "wants inner and outer security",
  293.   "desires self expression",
  294.   "works toward perfection",
  295.   "seeks balance, relationship, and calmness",
  296.   "desires to transform and remove outer masks",
  297.   "seeks meaning and new experience",
  298.   "works for solitude and personal integrity",
  299.   "desires individuality",
  300.   "seeks transcendence of self"};
  301.  
  302. char * ARR szLifeArea[cSign+1] = {"",
  303.   "establishment of personal identity",
  304.   "self image, self worth, and material security",
  305.   "communicating to and receiving from the environment",
  306.   "imagination, fantasies, inner feelings, and domestic life",
  307.   "finding joy, pleasure, and creative expression",
  308.   "work and feeling talented and useful",
  309.   "personal relationships and intimacy",
  310.   "sex, death, the occult, and other hard to grasp topics",
  311.   "changes, exploration, and the breaking of routine",
  312.   "career, social stature, and destiny",
  313.   "the future, life goals, and association with friends and groups",
  314.   "things that disrupt or cause disassociation with the personality"};
  315.  
  316. char * ARR szInteract[cAspectInt+1] = {"",
  317.   "is %sconnected and fused together with",
  318.   "%sopposes and creates tension with",
  319.   "is %sin conflict with",
  320.   "is %sin harmony with",
  321.   "has %sopportunity for growth, exchange, and harmony in relation with",
  322.   "is %sdifferent from",
  323.   "%sgets new perspectives in relation with",
  324.   "%screates internal friction with",
  325.   "%screates internal agitation with",
  326.   "%screatively relates externally with",
  327.   "%screatively relates internally with"};
  328.  
  329. char * ARR szTherefore[cAspectInt+1] = {"",
  330.   "Both parts are prominent in their psyche", "Balance is needed",
  331.   "Adaptation is required by both sides", "", "",
  332.   "They can often relate in a discordant way", "", "", "", "", ""};
  333.  
  334. /* Modifier array makes the interpretation stronger for narrower orbs. */
  335.  
  336. char * ARR szModify[3][cAspectInt] =
  337.   {{"always ", "always ", "irreconcilably ", "always ", "much ",
  338.   "completely ", "often ", "often ", "often ", "often ", "often "},
  339.   {"", "", "", "", "", "", "", "", "", "", ""},
  340.   {"somewhat ", "somewhat ", "somewhat ", "somewhat ", "some ", "somewhat ",
  341.   "sometimes ", "sometimes ", "sometimes ", "sometimes ", "sometimes "}};
  342. #endif /* INTERPRET */
  343.  
  344. /* data2.c */
  345.